#pragma once
#include"DGGSGeometry.hpp"

_NNU_DGGS_BEGIN
    namespace Feature
    {
        /// <summary>
        /// 格网系统的线结构
        /// </summary>
        class DGGSPolyLine : public DGGSGeometry
        {
        public:
            DGGSPolyLine()
            {
                this->_shapeType = ST_PolyLine;
                this->_gridCount=0;
            }

            ~DGGSPolyLine()override;

            /// <summary>
            /// 设置格网数据
            /// </summary>
            /// <param name="srcData">格网数据</param>
            bool setGridData(DGGSElementCode* srcData)override;

            /// <summary>
            /// 设置格网数据
            /// </summary>
            /// <param name="srcData">格网数据</param>
            void addGridCode(DGGSElementCode srcCode)override;

            /// <summary>
            /// 设置网格数量
            /// </summary>
            /// <param name="gridCount">网格数量</param>
            void setGridCount(int gridCount)override;

            /// <summary>
            /// 获取网格数据
            /// </summary>
            /// <param name="tagData">格网数据</param>
            bool getGridData(DGGSElementCode* &srcData)override;

            /// <summary>
            /// 获取网格数据
            /// </summary>
            /// <param name="index">格网索引</param>
            DGGSElementCode getGridCodeByIndex(int index)override;

            /// <summary>
            /// 获取网格数量
            /// </summary>
            /// <returns>int Count</returns>
            int getGridCount()override;

            /// <summary>
            /// 深拷贝
            /// </summary>
            DGGSPolyLine* deepCopy() override;

            /// <summary>
            /// 判断是否相同
            /// </summary>
            /// <param name="other">另外一个Geometry</param>
            bool Equals( DGGSGeometry *other)override;
        };

    }
_NNU_DGGS_END
